This disclosure relates generally to signal processing and more specifically relates to systems and methods selectively controlling information flow in a video processing or image processing system. Video processing systems are employed in various demanding applications, including high-definition television, missile guidance systems, video conferencing systems, and Internet video streaming. Such applications often demand compact cost-effective systems for encoding, transmitting, and decoding high quality compressed video relatively accurately, quickly, and efficiently.
Efficient video processing systems are particularly important in so-called H.264 applications, where video processing systems are subjected to strict standards. H.264 is digital video codec standard written by the Joint Video Team (JVT) comprising the International Telecommunication Union (ITU)—Telecommunication Standardization Sector (T) and the International Organization for Standardization (ISO)/International Electrotechnical Commission (IEC) Moving Picture Experts Group (MPEG). The H.264 standard is also called the ISO/IEC MPEG-4 Part 10 standard or the ITU-T H.264 standard.
In an example H.264 system, pixels of a video image are logically grouped into 16×16 blocks of pixels called macroblocks. Each macroblock is grouped into sixteen 4×4 blocks of pixels, called sub-blocks. The image is partitioned into horizontal bands, called slices, each containing several macro-blocks. When this example H.264 system processes a slice, information, from one or more previously processed macroblocks is typically required before a subsequent macroblock is processed. Similarly, when processing sub-blocks within a macroblock, information from one or more previously processed sub-blocks is typically required before a subsequent sub-block is processed. Unfortunately, such macroblock and sub-block dependencies have resulted in video processing systems that employ relatively inefficient serial processing of macroblocks and sub-blocks. Furthermore, such video processing systems often employ relatively inefficient information handling systems and methods.